The present invention relates to graphical user interfaces, and more particularly to techniques for facilitating creation of graphical user interfaces for different runtime environments.
In the computing domain, information is commonly stored in the form of models. For example, during the design phase, a designer may use a modeling tool to design an application. As part of the application design, the modeling tool may generate a model representation that stores information for the application including information about graphical user interfaces (GUIs) associated with the application. The model may store information related to various entities or components of the application, information describing inputs or outputs of the components, information describing dependencies between the various components and their input and outputs, a component's response to signals, the runtime environment, and other information for the application. The model that is used for storing application information may be configured by the designer after taking into consideration various factors such as the domain in which the application is to be used, the memory resources available for storing the information, the computing resources available for processing the model, tools to be used for manipulating the model, and other factors. A model representation (also referred to as canonic model representation) thus provides a convenient way to persist information for an application in a machine-readable representation. Various different types of model representations may be used. The type of model that is used may depend upon the domain in which the application is to be used, the design-time modeling environment used by the designer, available computing and memory resources, and the like.
During runtime, a design-time model (i.e., a model generated during design-time) is typically transformed to a form that can then be executed by a target device. The transformation from a model representation to an executable form is usually performed by a runtime framework which may comprise tools such as source code generators, compilers, interpreters, etc. This transformation generally depends on the characteristics of the runtime environment such as the runtime platform of the target device on which the application is to run (e.g., the target device that is used to output or display the GUI), characteristics of the target device such as GUI capabilities of the target device, and other factors that are specific to the runtime environment.
Conventionally, transformations from a design-time model representation to a runtime form are performed by specialized runtime tools (e.g., compilers), each tool programmed to convert a particular type of model to a particular target device-specific and runtime environment-specific executable form. The model representation is thus tightly coupled to the runtime environment. Due to this tight coupling, many times, it becomes very difficult to evolve model representations without affecting the runtime environment and the designer is forced to take into consideration runtime environment dependencies during the design phase.